package com.mybatisplus.base;

import com.mybatisplus.enums.ResultEnum;
import com.mybatisplus.exception.CommonException;
import org.springframework.util.StringUtils;

/**
 * @类名 ResultUtils
 * @描述 TODO
 * @版本 1.0
 * @创建人 lying
 * @创建时间 2020/4/30 11:54
 * @修改人 lying
 * @修改时间 2020/4/30 11:54
 **/
public class ResultUtils<T> {
    public static <T> Result<T> success(T data) {
        return Result.success(ResultEnum.OK.getCode(), data);
    }

    public static <T> Result<T> success() {
        return Result.success(ResultEnum.OK.getCode(), null);
    }

    public static <T> Result<T> error(ResultEnum resultEnum) {
        //此处处理国际化 ,稍后加上
        return Result.error(resultEnum.getCode(), resultEnum.getMessage());
    }

    public static <T> Result<T> error(String message) {
        return Result.error(90,message);
    }

    public static <T> Result<T> error(CommonException exception) {
        return Result.error(ResultEnum.BUSINESS_EXCEPTION.getCode(), exception.getMessage());
    }

    public static <T> Result<T> error(Throwable throwable) {
        return Result.error(ResultEnum.UNKNOW_EXCEPTION.getCode(), StringUtils.isEmpty(throwable.getMessage()) ? ResultEnum.UNKNOW_EXCEPTION.getMessage() : throwable.getMessage());
    }

    public static <T> Result<T> error(ResultEnum resultEnum, String obj) {
        return Result.error(resultEnum.getCode(), StringUtils.isEmpty(obj) ? resultEnum.getMessage() : obj);
    }
}
